﻿using System;
using System.ComponentModel;
using System.Runtime.InteropServices;

namespace Teigha.Core
{
	public class OdGiMapperRenderItem : OdGiMapperItem
	{
		[EditorBrowsable(EditorBrowsableState.Never)]
		public OdGiMapperRenderItem(IntPtr cPtr, bool cMemoryOwn) : base(GlobalsPINVOKE.OdGiMapperRenderItem_SWIGUpcast(cPtr), cMemoryOwn)
		{
			this.swigCPtr = new HandleRef(this, cPtr);
		}

		[EditorBrowsable(EditorBrowsableState.Never)]
		public static HandleRef getCPtr(OdGiMapperRenderItem obj)
		{
			if (obj != null)
			{
				return obj.swigCPtr;
			}
			return new HandleRef(null, IntPtr.Zero);
		}

		~OdGiMapperRenderItem()
		{
			this.Dispose();
		}

		public override void Dispose()
		{
			if (this.swigCPtr.Handle != IntPtr.Zero)
			{
				if (this.swigCMemOwn)
				{
					lock (this.locker)
					{
						if (this.swigCPtr.Handle != IntPtr.Zero && this.swigCMemOwn)
						{
							this.swigCMemOwn = false;
							GlobalsPINVOKE.delete_OdGiMapperRenderItem(this.swigCPtr);
						}
					}
					this.swigCMemOwn = false;
				}
				this.swigCPtr = new HandleRef(null, IntPtr.Zero);
			}
			GC.SuppressFinalize(this);
			base.Dispose();
		}

		public new static OdGiMapperRenderItem cast(OdRxObject pObj)
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_cast(OdRxObject.getCPtr(pObj));
			OdGiMapperRenderItem result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdRxClass desc()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMapperRenderItem_desc(), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxClass isA()
		{
			OdRxClass result = (OdRxClass)Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMapperRenderItem_isA(this.swigCPtr), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual OdRxObject queryX(OdRxClass protocolClass)
		{
			OdRxObject result = Teigha.Core.Helpers.odrxCreateObjectInternal(GlobalsPINVOKE.OdGiMapperRenderItem_queryX(this.swigCPtr, OdRxClass.getCPtr(protocolClass)), false);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new static OdGiMapperRenderItem createObject()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_createObject();
			OdGiMapperRenderItem result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperRenderItem)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void setDiffuseMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDiffuseMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDiffuseMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDiffuseMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDiffuseMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDiffuseMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDiffuseMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDiffuseMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual OdGiMapperItemEntry diffuseMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_diffuseMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setSpecularMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setSpecularMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSpecularMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setSpecularMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSpecularMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setSpecularMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setSpecularMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setSpecularMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry specularMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_specularMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setReflectionMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setReflectionMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setReflectionMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setReflectionMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setReflectionMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setReflectionMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setReflectionMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setReflectionMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry reflectionMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_reflectionMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setOpacityMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setOpacityMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setOpacityMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setOpacityMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setOpacityMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setOpacityMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setOpacityMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setOpacityMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry opacityMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_opacityMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setBumpMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setBumpMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setBumpMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setBumpMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setBumpMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setBumpMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setBumpMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setBumpMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry bumpMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_bumpMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setRefractionMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setRefractionMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setRefractionMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setRefractionMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setRefractionMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setRefractionMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setRefractionMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setRefractionMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry refractionMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_refractionMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public virtual void setNormalMapMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setNormalMapMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setNormalMapMapper(OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setNormalMapMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setNormalMapMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setNormalMapMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual void setNormalMapMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setNormalMapMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public virtual OdGiMapperItemEntry normalMapMapper()
		{
			MemoryManager memoryManager = MemoryManager.GetMemoryManager();
			MemoryTransaction currentTransaction = memoryManager.GetCurrentTransaction();
			IntPtr p = GlobalsPINVOKE.OdGiMapperRenderItem_normalMapMapper__SWIG_0(this.swigCPtr);
			OdGiMapperItemEntry result;
			if (currentTransaction != null)
			{
				currentTransaction.AddObject((OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true));
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, false);
			}
			else
			{
				result = (OdGiMapperItemEntry)Teigha.Core.Helpers.odrxCreateObjectInternal(p, true);
			}
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void setMapper(OdGiMaterialTraitsData traitsData, OdDbStub pMaterial)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setMapper__SWIG_0(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData), OdDbStub.getCPtr(pMaterial));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMapper(OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setMapper__SWIG_1(this.swigCPtr, OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData, OdDbStub pMaterial)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setMapper__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData), OdDbStub.getCPtr(pMaterial));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setMapper(OdGiMapper pMapper, OdGiMaterialTraitsData traitsData)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setMapper__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdGiMaterialTraitsData.getCPtr(traitsData));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setModelTransform(OdGeMatrix3d mtm, bool recomputeTransforms)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setModelTransform__SWIG_0(this.swigCPtr, OdGeMatrix3d.getCPtr(mtm), recomputeTransforms);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setModelTransform(OdGeMatrix3d mtm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setModelTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(mtm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(OdGeMatrix3d otm, bool recomputeTransforms)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_0(this.swigCPtr, OdGeMatrix3d.getCPtr(otm), recomputeTransforms);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(OdGeMatrix3d otm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(otm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(int nCount, OdGePoint3d pPoints, bool recomputeTransforms)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_2(this.swigCPtr, nCount, OdGePoint3d.getCPtr(pPoints), recomputeTransforms);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(int nCount, OdGePoint3d pPoints)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_3(this.swigCPtr, nCount, OdGePoint3d.getCPtr(pPoints));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(OdGeExtents3d exts, bool recomputeTransforms)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_4(this.swigCPtr, OdGeExtents3d.getCPtr(exts), recomputeTransforms);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setObjectTransform(OdGeExtents3d exts)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setObjectTransform__SWIG_5(this.swigCPtr, OdGeExtents3d.getCPtr(exts));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDeviceTransform(OdGeMatrix3d dtm, bool recomputeTransforms)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDeviceTransform__SWIG_0(this.swigCPtr, OdGeMatrix3d.getCPtr(dtm), recomputeTransforms);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setDeviceTransform(OdGeMatrix3d dtm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setDeviceTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(dtm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual bool isLastProcValid(OdDbStub pMaterial)
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isLastProcValid__SWIG_0(this.swigCPtr, OdDbStub.getCPtr(pMaterial));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isLastProcValid(OdDbStub pMaterial, OdGeMatrix3d tm)
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isLastProcValid__SWIG_1(this.swigCPtr, OdDbStub.getCPtr(pMaterial), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isLastProcValid(OdGiMapper pMapper, OdDbStub pMaterial)
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isLastProcValid__SWIG_2(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdDbStub.getCPtr(pMaterial));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isLastProcValid(OdGiMapper pMapper, OdDbStub pMaterial, OdGeMatrix3d tm)
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isLastProcValid__SWIG_3(this.swigCPtr, OdGiMapper.getCPtr(pMapper), OdDbStub.getCPtr(pMaterial), OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isLastProcValid(OdGeMatrix3d tm)
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isLastProcValid__SWIG_4(this.swigCPtr, OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isEntityMapper()
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isEntityMapper(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isObjectMatrixNeed()
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isObjectMatrixNeed(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isModelMatrixNeed()
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isModelMatrixNeed(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isDependsFromObjectMatrix()
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isDependsFromObjectMatrix(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual bool isVertexTransformRequired()
		{
			bool result = GlobalsPINVOKE.OdGiMapperRenderItem_isVertexTransformRequired(this.swigCPtr);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
			return result;
		}

		public new virtual void setVertexTransform(int nCount, OdGePoint3d pPoints)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setVertexTransform__SWIG_0(this.swigCPtr, nCount, OdGePoint3d.getCPtr(pPoints));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setVertexTransform(OdGeExtents3d exts)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setVertexTransform__SWIG_1(this.swigCPtr, OdGeExtents3d.getCPtr(exts));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setInputTransform(OdGeMatrix3d tm, bool bVertexDependantOnly)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setInputTransform__SWIG_0(this.swigCPtr, OdGeMatrix3d.getCPtr(tm), bVertexDependantOnly);
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		public new virtual void setInputTransform(OdGeMatrix3d tm)
		{
			GlobalsPINVOKE.OdGiMapperRenderItem_setInputTransform__SWIG_1(this.swigCPtr, OdGeMatrix3d.getCPtr(tm));
			if (GlobalsPINVOKE.SWIGPendingException.Pending)
			{
				throw GlobalsPINVOKE.SWIGPendingException.Retrieve();
			}
		}

		private object locker = new object();

		private HandleRef swigCPtr;
	}
}
